package com.br.negocio.vo;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

@Entity
@Table(name = "parcela")
public class ParcelaVO implements Serializable {

	private static final long serialVersionUID = 1L;
	
	@Id
	private ParcelaPK parcelaPK;
	
	@Column(name = "num_parcela", nullable = false, insertable = false, updatable = false)
	private int numero;
	
	@Column(name = "porcentagem", nullable = false)
	private float porcentagem;
	
	@Column(name = "quantidade_dias", nullable = false)
	private int quantidadeDias;
	
	@ManyToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "cod_condicao_pagamento", nullable = false, insertable = false, updatable = false, referencedColumnName = "cod_condicao_pagamento")
	@Fetch(FetchMode.JOIN)
	private CondicaoPagamentoVO condicaoPagamentoVO;
	
	public ParcelaVO() {
		this.parcelaPK = new ParcelaPK();
	}

	public int getNumero() {
		return this.numero;
	}

	public void setNumero(int numero) {
		this.parcelaPK.setNumero(numero);
		this.numero = numero;
	}

	public float getPorcentagem() {
		return this.porcentagem;
	}

	public void setPorcentagem(float porcentagem) {
		this.porcentagem = porcentagem;
	}

	public int getQuantidadeDias() {
		return this.quantidadeDias;
	}

	public void setQuantidadeDias(int quantidadeDias) {
		this.quantidadeDias = quantidadeDias;
	}

	public CondicaoPagamentoVO getCondicaoPagamentoVO() {
		return this.condicaoPagamentoVO;
	}

	public void setCondicaoPagamentoVO(CondicaoPagamentoVO condicaoPagamentoVO) {
		this.parcelaPK.setCondicaoPagamentoVO(condicaoPagamentoVO.getCodigo());
		this.condicaoPagamentoVO = condicaoPagamentoVO;
	}
		
}